<template>
  <div class="app-container">
    <el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="150px">

        <el-row :gutter="20">
                      <el-col :span="12">
                <el-form-item label="名称" prop="name">
                  <el-input v-model="temp.name" :disabled="temp.parentId===73"/>
                </el-form-item>
            </el-col>
            <el-col :span="12">
                <el-form-item label="编号" prop="number">
                  <el-input v-model="temp.number" />
                </el-form-item>
            </el-col>
            <el-col :span="12">
                <el-form-item label="部门类型" prop="tmptDeptType">
                  <select-option
                      v-model="temp.tmptDeptType"
                      :clearable=false
                      prop-name="TmptDeptType"
                      :prop-ds-type=1
                      prop-url="/core/enum/getData4AddBy"
                  />
                </el-form-item>
            </el-col>
<!--            <el-col :span="12">-->
<!--                <el-form-item label="父ID" prop="parentId">-->
<!--                  <el-input v-model="temp.parentId" />-->
<!--                </el-form-item>-->
<!--            </el-col>-->
            <el-col :span="12">
                <el-form-item label="级别" prop="level">
                  <el-input v-model="temp.level" />
                </el-form-item>
            </el-col>
            <!--<el-col :span="12">
                <el-form-item label="删除标志" prop="deleteflag">
                  <select-option
                      v-model="temp.deleteflag"
                      :clearable=false
                      prop-name="Deleteflag"
                      :prop-ds-type=1
                      prop-url="/core/enum/getData4AddBy"
                  />
                </el-form-item>
            </el-col>-->
        </el-row>
    </el-form>
  </div>
</template>

<script>
import {createApi, updateApi, fetchList} from './api'
// 导入多选项组件
import SelectOption from '@/views/coding/components/SelectOption'

export default {
    name: 'TmptAuthDept-FormDetail',

    components: { SelectOption },

    props: {
        isModule: {
            type: Boolean,
            default: false
        },
        row: {}
    },

    data() {
        return {
            rules: {
                name: [{ required: true, message: 'required', trigger: 'blur' }],
                tmptDeptType: [{ required: true, message: 'required', trigger: 'blur' }],
                parentId: [{ required: true, message: 'required', trigger: 'blur' }],
            },
            temp: {
            }
        }
    },

    watch: {
        'row': {
            immediate: true, // vue首次赋值不触发watch的解决方法
            handler: function(nval){
                if (this.isModule) {
                    // this.temp = Object.assign({}, this.row) // copy obj
                    if (nval === undefined) {return}
                    if (nval.id === undefined) {return}
                    this.getList(nval.id)
                }
            }
        }
    },

    methods: {
        getList(_id) {
            this.resetTemp()
            fetchList({id:_id}).then(result => {
                if (!result.success) {
                    this.notify(result)
                    return
                }
                this.temp = result.map.rows[0]
            })
        },
        // 给外部调用，清空form
        resetTemp() {
            this.temp = {
                name: '',
                number: '',
                tmptDeptType: '',
                parentId: '',
                deleteflag: '',
                level: '',
                id: undefined
            }
        },
        // 给外部调用，设置默认值，请根据实际情况修改id值
        defaultTemp() {
            this.temp = {
                tmptDeptType: 0, //设置默认值
                deleteflag: 0 //设置默认值
            }
        },
        // 树表： 拿当前节点ID作为父节点ID，建立树关系
        setParentNodeId(id) {
            this.temp.parentId = id
        },
        // 给外部调用，插入记录
        createData() {
            this.$refs['dataForm'].validate((valid) => {
                if (valid) {
                    const param = Object.assign({}, this.temp)
                    createApi(param).then((r) => {
                        this.notify(r)
                        if (r.success) {
                            this.resetTemp()
                            // 从父组件调用此方法，进行回调下
                            if (this.isModule) {
                                this.$emit('createResult')
                            }
                        }
                    })
                }
            })
        },
        // 给外部调用，修改记录
        updateData() {
            this.$refs['dataForm'].validate((valid) => {
                if (valid) {
                    // columnsTag.column4Add
                    const param = { id:this.temp.id }
                    param.name = this.temp.name
                    param.number = this.temp.number
                    param.tmptDeptType = this.temp.tmptDeptType
                    param.parentId = this.temp.parentId
                    param.level = this.temp.level
                    param.deleteflag = 0
                    updateApi(param).then((r) => {
                        this.notify(r)
                        if (r.success) {
                            this.resetTemp()
                            // 从父组件调用此方法，进行回调下
                            if (this.isModule) {
                                this.$emit('updateResult')
                            }
                        }
                    })
                }
            })
        },
        // 给外部调用，清除校验
        clearValidate() {
            this.$refs['dataForm'].clearValidate()
        }
    }

}
</script>
<style>

</style>
